package exercicio08.modelo;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Estoque {
	private Map<Integer, Produto> produtos;
	private static Estoque instance;
	private int semente;

	protected Estoque(Map<Integer, Produto> produtos) {
		super();
		this.produtos = produtos;
		semente = 1;
	}
	
	public static Estoque getInstance() {
		if (instance == null) {
			HashMap<Integer, Produto> prods = new HashMap<Integer, Produto>();
			instance = new Estoque(prods);
		}
		instance.fakeInit();
		return instance;
	}

	private void fakeInit() {
		produtos.put(1, new Produto(1,"Pacote feijão princesa", 5.5, 0));
		produtos.put(2, new Produto(2,"Pacote de macarrão Pilar", 4.8, 0));
		produtos.put(3, new Produto(3,"Lata de óleo Soya", 3.8, 0));
		produtos.put(4, new Produto(4,"Manteiga Aviador 300g", 4.5, 0));
		semente = 5;
	}
	
	public Iterator<Produto> listaProdutos() {
		return produtos.values().iterator();
	}

	public void entraQuantidadeProduto(int idProduto, int quant) {
		if (produtos.containsKey(idProduto)) {
			produtos.get(idProduto).entraQuantidade(quant);
		}
	}

	public boolean saidaQuantidadeProduto(int idProduto, int quant) {
		if (produtos.containsKey(idProduto)) {
			return produtos.get(idProduto).saiQuantidade(quant);
		}
		return false;
	}

	public void adicionaProtuto(String descricao, double preco, int quantidade) {
		produtos.put(semente, new Produto(semente, descricao, preco, quantidade));
		semente++;
	}
}
